//
// Created by NASA on 2023/7/14.
// 判断某一个字符串是否合规
//


#include <iostream>

using namespace std;

int main()
{
    string s="12&^YUhg!",p="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$";
    bool a= false,b= true,c= false,d= false,e=false,f= false;      //a:某个字符是否符合要求,b:密码是否合规,c:密码中是否有小写字母,d:密码中是否有特殊字符,e:字母中是否有大写字母,f:密码中是否有数字
    if(s.size()<=12 && s.size()>=6)
    {
        for (int i = 0; i < s.size(); ++i)
        {
            for (int j = 0; j < 66; ++j)
            {
                if (s[i]==p[j])
                {
                    a= true;
                }
            }
            if (not a)
            {
                b= false;
                break;
            }
            a=false;
        }
        for (int i = 0; i < s.size(); ++i)
        {
            for (int j = 0; j < 26; ++j)
            {
                if(s[i]==p[j])
                {
                    c=true;
                    break;
                }
            }
            for (int j = 26; j < 52; ++j)
            {
                if(s[i]==p[j])
                {
                    e=true;
                    break;
                }
            }
            for (int j = 52; j < 62; ++j)
            {
                if(s[i]==p[j])
                {
                    f=true;
                    break;
                }
            }
            for (int j = 62; j < 66; ++j)
            {
                if(s[i]==p[j])
                {
                    d= true;
                    break;
                }
            }
        }
    } else
    {
        b= false;
    }
    if(b && d && (c+e+f)>=2)
    {
        cout<<s;
    }
    return 0;
}